# # 异常的捕获与处理-------------------------------------------------------------
# try:
#     # 这里为可能出现异常的代码段
#     file = open('test.txt', 'r', encoding='utf-8')
# except FileNotFoundError:
#     # 这里捕获到异常后，执行如下操作
#     print("文件不存在")
#     print(FileNotFoundError)
# else:
#     # 如果没有出现异常则执行此处代码
#     print("okkkkkk!")
# finally:
#     # 无论如何，不管有没有异常，都会执行此处代码
#     print("all done")
#
#
# # 异常的传递性-------------------------------------------------------------
# # 会根据调用的层级，逐层向上传递
# def func1():
#     num = 1/0
#     print("func1")
# def func2():
#     func1()
#     print("func2")
# def main():
#     try:
#         func2()
#     except:
#         print("func2, error!")
# main()

# 模块的概念和导入-------------------------------------------------------------
# 模块：类似java的jar包
# import time
# print(time.time())
#
# from time import sleep
# sleep(3)

# 自定义模块与导入-------------------------------------------------------------
# import py文件名  这样就可以用该python文件内的功能了
# __main__变量：控制模块内的测试函数，只有单独运行module.py文件时才会运行，外部导入不会运行
# __all__变量：
# my_module.py:
#     __all__ = ['test_1']  表示import *时，并不直接默认导入全部，只导入 __all__ 变量所包括的函数及方法
#
#     def test_1():
#         print('test_1')
#     def test_2():
#         print('test_2')

# Python包-------------------------------------------------------------
# 包括一堆module.py文件，再加上一个__init__.py文件（标识此文件夹是否为Python包）

# 综合案例-------------------------------------------------------------
# 创建一个自定义包
